Menghitung Nilai $ e^x $ dengan Pendekatan Deret MacLaurin

Deret Taylor dan Deret MacLaurin

Sebuah fungsi $ f(x) $ yang memiliki turunan $ f^1(x) $, $ f^2(x) $, $ f^3(x) $, dan seterusnya yang kontinyu dalam interval $ I $ dan $ a, x I $ maka untuk $ x $ disekitar $ a $ yaitu $ |x – a| $ < , $ f(x) $ dapat diekspansi kedalam Deret Taylor. Deret Taylor didefinisikan seperti berikut.
f(x) = f(a) + {f^1(a) (x-a) \over 1!} + {f^2(a) (x-a)^2 \over 2!} + {f^3(a) (x-a)^3 \over 3!} ... {f^n(a) (x-a)^n \over n!}
Deret MacLaurin hampir sama dengan dengan Deret Taylor, hanya saja dalam deret maclaurin nilai a=0, sehingga persamaannya adalah seperti berikut.
f(x) = f(0) + {f^1(0)x \over 1!} + {f^2(0)x^2 \over 2!} + {f^3(0)x^3 \over 3!} ... {f^n(0)x^n \over n!}
Deret MacLaurin biasa disebut sebagai deret Taylor baku, kerena deret maclaurin merupakan standar atau dasar yang berlaku dengan a=0. Atau persamaan Deret MacLaurin diatas dapat ditulis seperti berikut
f(x) = \sum \limits_{i=0}^{n} {f^i(0)x^i \over i!}

Dalam deret MacLaurin yaitu menjumlahkan tiap-tiap suku sampai batas yang ditentukan, sehingga akan menghasilkan nilai yang mendekati nilai sebenarnya. Deret Maclaurin ini dimanfaatkan dalam metode numerik untuk menghitung atau menghampiri nilai fungsi yang susung dihitung secara menual, seperti halnya kita ingin mencari nilai dari $ sin x $, $ cos x $, $ e^x $, $ log x $, atau $ ln(x+1) $. Kita membutuhkan alat khusus, seperti kalkulator atau tabel khusus untuk mencari nilai-nilai dari dari fungsi tersebut.

Dalam kasus ini akan dihitung nilai dari $ e^x $ secara menual dengan x=1, serta menerapkannya dalam bahasa pemrograman python untuk menghitung $ e^{3x} $.

Perhitung nilai $ e^x $ dengan $ x=1 $

Perhitungan nilai $ e^x $ memiliki fungsi, yaitu $ f(x)=e^x $ dengan turunan berpola seperti berikut.
f(x) = e^x \\ f^1(x) = e^x \\ f^2(x) = e^x \\ . \\ . \\. \\ f^n(x) = e^x
Ketika $ e^{3x} $ maka polanya adalah
{ } f(x) = e^x \\ f^1(x) = 3e^{3x} \\ f^2(x) = 9e^{3x} \\ f^3(x) = 27e^{3x} \\ . \\ . \\ .
yang artinya turunannya adalah koefisien dipangkat turunan ke i. Kemudian kita dapat menghitung dengan deret MacLaurin
f(x) \approx f(0) + {f^1(0)x \over 1!} + {f^2(0)x^2 \over 2!} + {f^1(0)x^3 \over 3!} + {f^4(0)x \over 4!} + {f^5(0)x^5 \over 5!} ... \\ f(1) \approx 1 + 1 + {1 \over 2} + {1 \over 6} + {1 \over 24} + {1 \over 120} ... \\ f(1) \approx 2.7166666666666663
dengan menghitung menggunakan 5 suku pada deret maclaurin, maka menghasilkan selisih yang cukup jauh dengan nilai sebernarnya. nilai (True Value) dari $ e^x $ dengan $ x=1 $ adalah 2.718281828459045 (yang di dapat dari module math.e di python), dan nilai perkiraan yang dihasilkan dari perhitungan diatas, yaitu 2.7166666666666663 dengan x=1. Karena kita mengetahui nilai sebenarnya dari $ e^x $, maka kita dapat telah menghitung True Error dari perkiraan tersebut.
{E_t = True Value - Approximate Vallue} \\ {E_t = 2.7166666666666663 - 2.718281828459045} \\ {E_t = 0.0016151617923787498}

Maka didapatkan nilai True Error, yaitu 0.0016151617923787498.

Implementasi Deret MacLaurin pada Python

Pada implementasi deret MacLaurin dengan bahasa pemrograman python, kita akan mencoba untuk menghitung nilai dari $ e^{3x} $ dengan batas error/threshold 0,001.

import math

error = 0.001

def percent(angka):
    return str(round(angka*100, 4)) + '%'    

def f(x):
    f_turunan = 1
    current=i=0
    iteration = True
    while iteration:
        old = current   
        current += (f_turunan*(x**i))/math.factorial(i) #Σf(0)x^i / i!
        print('f ke-', i,'=', f_turunan, ' {e^3x=', current ,'} {Ea=', current-old, '}  {|ϵa|%=', (current-old)/current, '|', percent((current-old)/current), '}' )
        if current-old < error:
            iteration = False
        else:
            f_turunan *= 3
            i +=1      

f(1)

Pada program tersebut ditetapkan error yaitu 0,001, di program tersebut tersebut terdapat fungsi percent(args) yang nantinya akan digunakan untuk untuk menkonversi nilai menjadi persen pada relative aproksimasi error.

def percent(angka):
    return str(round(angka*100, 4)) + '%'    
Dan fungsi utama perhitungan deret MacLaurin terdapat pada fungsi f(args). fungsi tersebut akan beriterasi dari 0 sampai hasil perhitungan kurang dari batas error yang ditetapkan. hasil perhitungan ditampung pada variabel old untuk nilai aproksimasi sebelumnya, dan variabel current untuk menampung nilai aproksimasi saat ini, dari hasil perhitungan $ f(x) = \sum \limits_{i=1}^{n} {f^i(0)x^i \over i!} $ yang terus dijumlahkan setiap iterasi.
def f(x):
    f_turunan = 1
    current=i=0
    iteration = True
    while iteration:
        old = current   
        current += (f_turunan*(x**i))/math.factorial(i) #Σf(0)x^i / i!
        if current-old < error:
            iteration = False
        else:
            f_turunan *= 3
            i +=1      

Saat nilai aproksimasi saat ini dikurangi nilai aproksimasi sebelumnya kurang dari batas error maka iterasi akan dihentikan, sebaliknya program akan terus beriterasi ke suku selanjutnya dan turunan dibawahnya.

Hasil program saat di jalankan:

f ke- 0 = 1  {e^3x= 1.0 } {Ea= 1.0 } {|ϵa|%= 1.0 | 100.0% }
f ke- 1 = 3  {e^3x= 4.0 } {Ea= 3.0 } {|ϵa|%= 0.75 | 75.0% }
f ke- 2 = 9  {e^3x= 8.5 } {Ea= 4.5 } {|ϵa|%= 0.5294117647058824 | 52.9412% }
f ke- 3 = 27  {e^3x= 13.0 } {Ea= 4.5 } {|ϵa|%= 0.34615384615384615 | 34.6154% }
f ke- 4 = 81  {e^3x= 16.375 } {Ea= 3.375 } {|ϵa|%= 0.20610687022900764 | 20.6107% }
f ke- 5 = 243  {e^3x= 18.4 } {Ea= 2.0249999999999986 } {|ϵa|%= 0.11005434782608689 | 11.0054% }
f ke- 6 = 729  {e^3x= 19.412499999999998 } {Ea= 1.0124999999999993 } {|ϵa|%= 0.05215711526078554 | 5.2157% }
f ke- 7 = 2187  {e^3x= 19.846428571428568 } {Ea= 0.4339285714285701 } {|ϵa|%= 0.02186431527802765 | 2.1864% }
f ke- 8 = 6561  {e^3x= 20.009151785714284 } {Ea= 0.162723214285716 } {|ϵa|%= 0.008132439397150944 | 0.8132% }
f ke- 9 = 19683  {e^3x= 20.063392857142855 } {Ea= 0.05424107142857082 } {|ϵa|%= 0.0027034844911218605 | 0.2703% }
f ke- 10 = 59049  {e^3x= 20.079665178571425 } {Ea= 0.016272321428569825 } {|ϵa|%= 0.0008103880858499218 | 0.081% }
f ke- 11 = 177147  {e^3x= 20.08410308441558 } {Ea= 0.004437905844156376 } {|ϵa|%= 0.00022096609569784593 | 0.0221% }
f ke- 12 = 531441  {e^3x= 20.08521256087662 } {Ea= 0.001109476461039094 } {|ϵa|%= 5.523847246706314e-05 | 0.0055% }
f ke- 13 = 1594323  {e^3x= 20.08546859390609 } {Ea= 0.0002560330294691937 } {|ϵa|%= 1.2747177307422833e-05 | 0.0013% }

#nilai sebenarnya dari f(x)=e^3x dengan nilai x=1 yaitu : 20.085536923187664, yang diambil dari module math.e di python
Setelah program tersebut bejalan, dan berhenti dengan 13 kali iterasi, program tersebut menghasilkan nilai akhir, yaitu $ e^x = 20.08546859390609 $ dengan aproksimasi error sebesar $ E_a = 0.0002560330294691937 $. dan nilai sebenarnya dari $ e^{3x} $ dengan x=1 adalah 20.085536923187664 (yang didapat dari module math.e di python). Setelah kita ketahui nilai sebenarnya, maka kita dapat menghitung True Error dari perkiraan tersebut.
{E_t = True Value - Approximate Vallue} \\ {E_t = 20.085536923187664 - 20.08546859390609} \\ {E_t = 6.832928157507467e-05}

Maka di dapatkan True Value = 6.832928157507467e-05. Dapat disimpulkan semakin kecil batasan error yang diberikan, maka selisih antara nilai sebenarnya dengan nilai perkiraan tidak akan jauh atau tingkat akurasi nilai yang dihasilkan semakin bagus.

Berikut merupakan hasil visualisasi dalam bentuk tabel, hasil dari perhitungan $ e^{3x} $ dengan x=1.

n $ e^{3x} $ $ E_a $ $ | \epsilon_a | \% $
0 1.0 1.0 1.0 | 100%
1 4.0 3.0 0.75 | 75.0%
2 8.5 4.5 0.5294117647058824 | 52.9412%
3 13.0 4.5 0.34615384615384615 | 34.6154%
4 16.375 3.375 0.20610687022900764 | 20.6107%
5 18.4 2.0249999999999986 0.11005434782608689 | 11.0054%
6 19.412499999999998 1.0124999999999993 0.05215711526078554 | 5.2157%
7 19.846428571428568 0.4339285714285701 0.02186431527802765 | 2.1864%
8 20.009151785714284 0.162723214285716 0.008132439397150944 | 0.8132%
9 20.063392857142855 0.05424107142857082 0.0027034844911218605 | 0.2703%
10 20.079665178571425 0.016272321428569825 0.0008103880858499218 | 0.081%
11 20.08410308441558 0.004437905844156376 0.00022096609569784593 | 0.0221%
12 20.08521256087662 0.001109476461039094 5.523847246706314e-05 | 0.0055%
13 20.08546859390609 0.0002560330294691937 1.2747177307422833e-05 | 0.0013%

Keterangan :

n = iterasi / suku

$ e^x $ = nilai yang dicari

$ E_a $ = aproksimasi error

$ |\epsilon_a| \% $ = relatif aproksimasi error